developmentor - a developer services company				  
				      Essential .NET Security
   Modules

CAS Policy


1. Type safety is important to CAS because
JIT compilation doesn't work unless the components are type safe
type system violations can lead to compromise of evidence, policy, and gateway classes, which can allow malware to escalate its own privileges
all components in .NET are required to be type safe

2. Security policy
takes a permission set as input and produces evidence as output
takes evidence as input and produces a permission set as output
takes an assembly as input and produces evidence as output

3. The four policy levels
allow the enterprise administrator, machine administrator, logged on user, and the developer of the application in use to restrict what code can do.
are always kept synchronized via Active Directory
are managed via XML configuration files stored in the same directory as machine.config

4. A code group that grants permissions based on a strong name
will always be used no matter where it is in the tree
is only useful if the private key for that strong name is kept secure
will be ignored if strong name validation is disabled

5. CAS can be turned off
machine-wide, by an administrator running CASPOL
process-wide, by fully trusted code setting SecurityManager.SecurityEnabled=false
and this causes all demands to succeed
and the tools don't make it obvious that it's off
all of the above